home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / comm / net / dnet2_10_13.lha / DNet / Niftyterm / niftyterm.doc < prev    next >
Text File  |  1992-02-29  |  24KB  |  453 lines

  1.  
  2.  
  3.  
  4.             Niftyterm: A VT102/H19 terminal emulator for the Amiga
  5.                                        
  6. Copyright notice:
  7.  
  8.     Niftyterm is (C) Copyright 1991, 1992 Christopher J. Newman and Todd
  9.     Williamson
  10.     All Rights Reserved.
  11.     
  12.     Permission to use, copy, modify, distribute, and sell this software and
  13.     its documentation for any purpose is hereby granted without fee,
  14.     provided that the above copyright notice appear in all copies and that
  15.     both that copyright notice and this permission notice appear in
  16.     supporting documentation, and that the names of Christopher J. Newman
  17.     and Todd Williamson not be used in advertising or publicity pertaining
  18.     to distribution of the software without specific, written prior
  19.     permission.  Christopher J. Newman and Todd Williamson make no
  20.     representations about the suitability of this software for any purpose.
  21.     It is provided "as is" without express or implied warranty.
  22.     
  23.     CHRISTOPHER J. NEWMAN AND TODD WILLIAMSON DISCLAIM ALL WARRANTIES WITH
  24.     REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
  25.     MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL CHRISTOPHER J. NEWMAN OR
  26.     TODD WILLIAMSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
  27.     DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  28.     PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
  29.     ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
  30.     THIS SOFTWARE.
  31.     
  32.     Authors: Christopher J. Newman and Todd Williamson
  33.     Niftyterm was compiled with Manx Aztec C version 5.0d
  34.     Niftyterm source code is available upon request.  Send a disk and a
  35.     self-addressed mailer to the address below, and I'll send you a copy.
  36.  
  37.     If you find this program useful, Chris and I would certainly appreciate
  38.     a donation to support further development:
  39.     
  40.     Todd Williamson
  41.     1631 Shady Avenue #1
  42.     Pittsburgh, PA  15217-1417
  43.  
  44. Niftyterm: History
  45.  
  46.     Niftyterm was written at Carnegie-Mellon University by Chris Newman.
  47.     It started out as a terminal emulator for the CMU Andrew system (a
  48.     system of distributed UNIX workstations) using the CMU Window Manager
  49.     (wm).  At the time it was created, all of the terminal emulators
  50.     available for wm were featureless and bug-ridden.
  51.  
  52.     Then CMU purchased DECStation 3100's for use with Andrew.  One of the
  53.     major faults of the DECStation is that the console only emulates a
  54.     glass tty (i.e. you can't even clear the screen, much less control the
  55.     cursor position;  good luck running anything but a line editor).  So,
  56.     of course, Chris ported niftyterm to run on the console of the
  57.     DECStation.  While he was at it, he made a console version for all of
  58.     the other machines in the Andrew system (currently includes: Mac II
  59.     Mach, Sun 3, Sun 4 (Sparc), Decstation 3100, IBM RT, and VAX).
  60.     
  61.     The next step, of course, was X Windows.
  62.    
  63.     In the fall of 1989, I found myself in need of an h19 emulator for the
  64.     Amiga, preferably under DNet.  I also found myself wishing that we had a
  65.     VT100 emulator that would run under DNet.  So I ported Chris' work to the 
  66.     Amiga.
  67.     
  68. What is Niftyterm?
  69.  
  70.     Niftyterm is an h19/VT102/VT52 emulator for the Amiga.  It was originally
  71.     designed to be used with DNet, but it has been expanded so that it may be
  72.     used as a normal terminal emulator.  Niftyterm was designed to be a good
  73.     emulation of these terminals, as well as being fairly small and fast.  It
  74.     was not designed to be anything but a terminal.  As such, it provides no
  75.     direct facility for file transfer, nor are any planned for future versions.
  76.  
  77.     Niftyterm opens its window on the WorkBench.  It provides a full-featured
  78.     Intuition interface, as well as a system for storing preferences and a large
  79.     list of command-line options.  Copy/paste to/from the clipboard is
  80.     supported.  Niftyterm also remaps the cursor and keypad keys so that they
  81.     function as on the real terminals.
  82.  
  83.     Niftyterm V1.3 is fully AmigaDOS 2.0 compatible.
  84.  
  85. Starting Niftyterm
  86.  
  87.     By default, Niftyterm will use the system font topaz 8.  Since some people
  88.     find this font unattractive, and it lacks the necessary VT102 alternate
  89.     character set and double width characters, you might wish to use a set of
  90.     fonts specifically designed for use with Niftyterm.  See the section below
  91.     entitled "About fonts" for more information.
  92.     
  93. Options
  94.  
  95.     You can use the following arguments when entering the Niftyterm command:
  96.     
  97.     niftyterm [-f fontname] [-h19] [-l file] [-p programname] [-sl] [-st] [-i]
  98.     [-g geometry] [-vt102] [-vt52] [-80] [-d device] [-u unit] [-V] [-w]
  99.     [-shared] [-stay] [-B baudrate] [-P parity] [-7] [-N net#] [-v]
  100.     
  101.     These arguments can be entered in any order and any combination (except
  102.     those that override opposite preferences).  Their meanings are as follows:
  103.     
  104.     -f  font  Sets the font for the niftyterm window.  By default the font
  105.     'nifty/11' or 'topaz/8' is used.  If you wish to use a different font such
  106.     as 'courier 11', simply specify font as 'courier/11.' If the font you
  107.     choose is not fixed width, strange and unusual things will happen.
  108.     
  109.     -h19  Causes niftyterm to emulate a Zenith h19 terminal.  The only thing an
  110.     h19 can do that a vt102 can't is change the look of the cursor.
  111.     
  112.     -l file  Writes everything that occurs in the niftyterm to a log file.
  113.     
  114.     -p name  Sets the program name in the window title bar.
  115.     
  116.     -sl  Starts up niftyterm in slow mode -- only useful if you intend to watch
  117.     some vt102 animations.
  118.     
  119.     -st  Causes niftyterm to display whatever comes from standard input, and
  120.     send all keystrokes to standard output.  For example:
  121.  
  122.     run type >pipe:foo file
  123.     niftyterm <pipe:foo -st
  124.     
  125.     would display file in a niftyterm window.  (Or simply niftyterm <foo -st).
  126.     
  127.     -i  Starts up niftyterm with an invisible cursor -- very limited
  128.     usefulness.
  129.     
  130.     -g geometry  Set up the window geometry.  The format for geometry is
  131.     left/top/width/height.  A value of -1 for the width or height makes the
  132.     window stretch to the right edge or bottom of the screen.  A value of -1
  133.     for the top makes the window's top edge appear just below the screen title
  134.     bar.  The left and top are in pixels.  The width and height are in
  135.     characters.
  136.     
  137.     -vt102  This overrides the niftyterm.emulation preference, causing
  138.     niftyterm to emulate a vt102 terminal.
  139.     
  140.     -vt52  This causes niftyterm to start up emulating a vt52 terminal.  This
  141.     is only useful if you have a program designed for a vt52 terminal.
  142.     
  143.     -80  causes niftyterm to use no more than 80 columns.
  144.     
  145.     -d device  causes niftyterm to use device for its input and output.  If you
  146.     want to use DNet, you can use 'dnet' as the device name.  For example, if
  147.     you specify "serial.device," you can use the serial port.
  148.     
  149.     -u unit  causes niftyterm to use the specified unit of the device.  No
  150.     effect if using DNet.
  151.     
  152.     -V  niftyterm will display the current version number and copyright notice.
  153.     
  154.     -w  niftyterm will wait for a key to be pressed before closing the window.
  155.     
  156.     -shared  niftyterm will open the device specified in "shared" mode.  A new
  157.     menu option will appear also.  This allows niftyterm to share the serial
  158.     port with other applications which open the serial port in shared mode
  159.     (including niftyterm).  See the "unlisten" menu option.
  160.  
  161.     -stay  by default, niftyterm detaches itself from the CLI in which it is run.
  162.     If you specify this option, it will hang around.
  163.  
  164.     -B baudrate  niftyterm will attempt to set the baud rate of the connection to 
  165.     baudrate.
  166.  
  167.     -P parity  where parity is one of {e, o, n, m, s}, or the longer names 
  168.     {even, odd, none, mark, space}.  Niftyterm will attempt to set the parity
  169.     of the connection to parity.
  170.  
  171.     -7  Niftyterm will "strip" the high bit off of incoming characters, so that all 
  172.     characters are seven bits, even if you have an 8-bit connection.
  173.  
  174.     -N net#  Sets the network number for use with DNet, in case you have more than 
  175.     one dnet session running at a time.
  176.  
  177.     -v  Niftyterm starts up using inverse video.
  178.  
  179. Preferences
  180.  
  181.     On startup, niftyterm reads the file s:niftyprefs for it's preferences
  182.     data.  This file is in the format used by the CMU Window Manager.  I
  183.     think that it's a good format.  Entries in the file have the format:
  184.     
  185.     niftyterm.preference: value
  186.     
  187.     boolean values can be indicated by most things that make sense: {yes,
  188.     no}, {true, false}, etc.  The following are the supported preferences:
  189.  
  190.     niftyterm.emulation: [h19/vt52/vt102] (default: vt102)
  191.     This preference sets the startup emulation for all niftyterm windows.
  192.     
  193.     niftyterm.bell: [audio/visual/both/displaybeep/none] (default: visual)
  194.     This preference sets what niftyterm should do when it gets the bell
  195.     character (^G).  audio plays a simple beep.  visual inverts the entire
  196.     window temporarily.  both does both audio and visual.  displaybeep calls
  197.     the internal Amiga DisplayBeep() function (in case you have your own nifty
  198.     sample set up as the beep).  none means there is no bell.
  199.     
  200.     niftyterm.device: <device>  (default: dnet)
  201.     This preference sets what device niftyterm should use for input and output.
  202.     For example. 'serial.device.'  'dnet' is a legal value, meaning that
  203.     niftyterm should talk to DNet instead of a particular device.
  204.     
  205.     niftyterm.unit: <unit>  (default: 0)
  206.     This preference tells niftyterm which unit on the device specified by
  207.     niftyterm.device it should use.
  208.     
  209.     niftyterm.altismeta: yes (default)
  210.     By default, the alt key on the keyboard will act as a meta key (i.e. set
  211.     the eighth bit of the character pressed with the key down).  Setting this
  212.     preference to 'no' will disable this feature.  This is particularly useful
  213.     for emacs.
  214.     
  215.     niftyterm.cursorblink: no (default)
  216.     By default, niftyterm has a solid cursor.  Setting this preference to 'yes'
  217.     will case niftyterm's cursor to blink at the rate of once per second.
  218.     
  219.     niftyterm.cursor: [underline/block/invisible] (default: block)
  220.     This preference sets the type of cursor niftyterm uses.  Invisible isn't
  221.     very useful.
  222.     
  223.     niftyterm.basefont: <name>/<size>  (default: nifty/11 then topaz/8)
  224.     This preference sets the base fontfamily for niftyterm's fonts.  See the -f
  225.     option above.
  226.     (i.e. "niftyterm.basefont: courier/11" causes courier 11 to be the default
  227.     font).
  228.     
  229.     niftyterm.normalDelete: yes  (default)
  230.     If you add "niftyterm.normalDelete: no", then niftyterm will bind the
  231.     delete key to backspace.  See also the niftyterm.normalBackspace
  232.     preference.
  233.     
  234.     niftyterm.normalBackspace: yes  (default)
  235.     If you add "niftyterm.normalBackspace: no", then niftyterm will bind the
  236.     backspace key to delete on startup.
  237.     
  238.     niftyterm.emacsmode: no  (default)
  239.     If you add "niftyterm.emacsmode: yes", then niftyterm will start up in
  240.     "emacs mode".  See description of emacs mode menu item below.
  241.     
  242.     niftyterm.fixedColumns: no  (default)
  243.     If you add "niftyterm.fixedColumns: yes", then niftyterm will start up with
  244.     no more than 80 columns of text.  This is useful for running programs
  245.     written for terminals that assume the terminal is 80 columns.
  246.     
  247.     niftyterm.geometry: left/top/width/height  (default:  0/0/-1/-1)
  248.     Set up the default geometry of the window.  See the -g option above.  The
  249.     default is to open a window the size of your screen.
  250.     
  251.     niftyterm.sizegadget: [row/column/none]  (default: column)
  252.     This preference controls which border of the window the window's sizing
  253.     gadget will appear in.  If you have a sizing gadget on a window, you must
  254.     lose some of the window space for the border to contain it.  This
  255.     preference controls whether you lose rows, columns, or nothing.  If you
  256.     choose none, the window will not have a size gadget, and will therefore not
  257.     be resizeable.  Useful if you want an 80x24 window to take up the smallest
  258.     possible screen space.
  259.  
  260.     niftyterm.baudrate: baud  (default: no default)
  261.     If niftyterm is running over a serial device, it will set the baudrate to
  262.     this value.
  263.  
  264.     niftyterm.parity: [none/even/odd/mark/space]  (default: no default)
  265.     If niftyterm is running over a serial device, this preference will set the
  266.     parity.
  267.  
  268. Menu meanings
  269.  
  270.     Niftyterm currently has two menus, Edit and Control.  The Edit menu has
  271.     editing commands.  The Control menu allows the user to adjust the way
  272.     Niftyterm functions.
  273.     
  274.     Edit menu:
  275.         Copy:  Copies the selected text into the clipboard.  You can put the
  276.         text you copied most recently back into any document by choosing Paste.
  277.         
  278.         Paste:  Copies the most recently copied text to the current cursor
  279.         position.
  280.         
  281.         Move:  If a previous command or some text is selected in the Niftyterm
  282.         window, Move inserts the text as if it had been typed.
  283.         
  284.         Execute:  The same as move, only it follows the text with a carriage
  285.         return.
  286.         
  287.         Clear Screen:  Moves the current niftyterm prompt to the top of the
  288.         Niftyterm window and clears the screen.
  289.         
  290.         Flush:  Flushes the buffers for the current device.  Useful if you did
  291.         something that will cause a lot of output, and you want to tell
  292.         niftyterm not to display it all.
  293.         
  294.         Break:  (only available if input is from a device, not dnet or standard
  295.         input)  Break sends a break signal to the current device.
  296.         
  297.         Iconify:  Turns the niftyterm window into an icon.  Double click on the
  298.         icon to get the window back.
  299.         
  300.         Quit:  exits Niftyterm and closes the window.
  301.         
  302.     Control menu:
  303.     
  304.         Change Cursor:  This toggles the cursor between a block and an
  305.         underline character.  When emulating an h19 terminal, this cursor
  306.         change can also be made by terminal codes.
  307.         
  308.         invert:  inverts the niftyterm display window.  This may be
  309.         controlled by terminal codes when emulating a VT102 terminal.
  310.         
  311.         soft reset:  resets all terminal styles, scroll regions, and invert
  312.         mode.
  313.         
  314.         slow display:  If you select this, the display speed will be reduced,
  315.         and the menu item will change to fast display.  A slow display is
  316.         useful when viewing VT100 animations.
  317.         
  318.         Delete to Backspace:  If you select this, the Delete key will be
  319.         converted to a Backspace key, and the menu item will change to Delete
  320.         to Normal.  By default, Niftyterm leaves the delete key alone.
  321.         
  322.         Backspace to Delete:  If you select this, the Backspace key will be
  323.         converted to a Delete key, and the menu item will change to Backspace
  324.         to Normal.  By default, Niftyterm leaves backspace key alone.
  325.         
  326.         80 Columns:  Niftyterm will display no more than 80 columns in the
  327.         window, allowing 80 column terminal programs to run correctly.
  328.         
  329.         Emacs mode on:  causes left mouse clicks to (attempt to) move the
  330.         cursor when running emacs in a niftyterm.  The menu item will then
  331.         change to Emacs mode off.  This is a hack, but you might find it
  332.         useful.  It operates by inserting the right number of ^P, ^N, ^F, & ^B
  333.         characters to move the cursor to the desired location.
  334.         
  335.         Unlisten:  (only available when niftyterm is started in "shared" mode)
  336.         Niftyterm will cease to talk to whatever device it is connected to, so
  337.         that another program can use it exclusively.  Note that this niftyterm
  338.         window will not accept any input from the user except the "listen" menu
  339.         option.  An example of usage:  you're logged in and you want to save
  340.         something to a log file.  You had foresight and started niftyterm in
  341.         shared mode.  You "unlisten" and start another niftyterm writing to a
  342.         log file.  When you have everything in the log file, you quit the
  343.         second niftyterm and "listen" the original.  This option might be
  344.         useful if someone wants to write some stand-alone file transfer
  345.         utilities.
  346.         
  347. About Fonts
  348.  
  349.     Niftyterm should be able to use any fixed-width font.  However,
  350.     standard Amiga fonts do not represent the VT100's character set very
  351.     well.  Included with this distribution is a set of fonts with names
  352.     starting with "nifty".  Some explanation of these fonts is in order.
  353.     Niftyterm starts out with a base font name, something like "topaz" or
  354.     "nifty."  If niftyterm needs an italic or bold font, it first looks in
  355.     the fonts: directory to see if there is a version of the current font
  356.     which was designed to be italic or bold.  If not, it uses the Amiga's
  357.     internal functions to construct one.  When it needs one of the special
  358.     VT100 character sets, it appends an extension to the font name and
  359.     looks for a font of the same size as the current font with the new
  360.     name.  The extensions are as follows:
  361.  
  362.     v       alternate character set
  363.     w       double-width font
  364.     t       top half of double-width double-height font
  365.     b       bottom half of double-width double-height font
  366.     
  367.     "vw", "vt",  and "vb" are also extensions, meaning the alternate
  368.     character set version of the different-sized font.  So, for example, if
  369.     niftyterm was using the font "nifty/11," and it needed a double-width
  370.     font, it would look for the font "niftyw/11."
  371.     
  372.     The fonts that come with the distribution are designed to be used on
  373.     screens where the pixels are roughly as wide as they are tall.  Any of
  374.     the 640x400 graphics modes fall into this category.  In the 640x200
  375.     modes, the fonts will seem too tall.
  376.     
  377.     If anyone creates any fonts for use with niftyterm, I'd like to get a
  378.     copy of them.
  379.  
  380. Quick reference
  381.  
  382. Preferences: [default values in brackets]
  383.  niftyterm.emulation: h19/vt52/vt102                 set emulation. [vt102]
  384.  niftyterm.bell: audio/visual/both/displaybeep/none  set bell type [visual]
  385.  niftyterm.device: <device>                          set I/O device [dnet]
  386.  niftyterm.unit: <unit>                              set device unit [0]
  387.  niftyterm.altismeta: yes/no                         is alt key meta key? [yes]
  388.  niftyterm.cursorblink: yes/no                       does the cursor blink? [no]
  389.  niftyterm.cursor: block/underline/invisible         type of cursor [block]
  390.  niftyterm.basefont: <name>/<size>                   set default font. [nifty/11]
  391.  niftyterm.normalDelete: yes/no                      delete key <-> delete? [yes]
  392.  niftyterm.normalBackspace: yes/no                   backspace key <-> bs? [yes]
  393.  niftyterm.emacsmode: no/yes                         cursor moves in emacs.[no]
  394.  niftyterm.fixedColumns: no/yes                      80 columns max. [no]
  395.  niftyterm.geometry: left/top/width/height           set up default window specs.
  396.  niftyterm.sizegadget: row/column/none               sizegadget? where? [column]
  397.  niftyterm.pass8: yes/no                             whether to pass 8 bits. [yes]
  398.  niftyterm.inverse: yes/no                           use inverse video. [no]
  399.  niftyterm.baudrate: baud                            set the baud rate. [no default]
  400.  niftyterm.parity: none/mark/space/even/odd          set the parity. [no default]
  401.     
  402. Command line options:
  403.  -f <font>/<size>              set the font. (i.e. nifty/11, courier/11).
  404.  -h19                          emulate an h19 terminal instead of a VT102.
  405.  -l <file>                     write all output to a log file.
  406.  -p <name>                     set the program name (left side of title bar).
  407.  -sl                           start up in slow mode (for vt100 animations).
  408.  -st                           take input from standard input and display it.
  409.  -ic                           start up with invisible cursor.
  410.  -g left/top/width/height      set up window geometry.
  411.  -vt102                        emulate a vt102 terminal on startup. 
  412.  -vt52                         emulate a vt52 terminal on starpppptup.
  413.  -80                           start with no more than 80 columns.
  414.  -d <device>                   set device to use for I/O.
  415.  -u <unit>                     set unit number for device I/O.
  416.  -V                            show version number and copyright notice.
  417.  -w                            wait for a keypress before closing window.
  418.  -shared                       start niftyterm in shared mode.
  419.  -stay                         don't detach from CLI.
  420.  -B baudrate                   set baudrate for serial connection.
  421.  -P parity                     set parity for serial connection.
  422.  -7                            strip all characters to seven bits.
  423.  -N net#                       set DNET network number.
  424.  -v                            start up with inverse video.
  425.  
  426. Delete and Backspace
  427.  
  428.     Since some systems require the use of either a delete key or a backspace
  429.     key for line editing, Niftyterm can make each of these keys act like the
  430.     other selectively.  For a temporary change to the performance of these
  431.     keys, select the appropriate menu item (backspace to delete or delete to
  432.     backspace). For a permanent change, use the preferences
  433.     niftyterm.normalDelete and niftyterm.normalBackspace.
  434.  
  435. Warnings
  436.  
  437.     Niftyterm's h19 emulation is not fully compatible with a standard h19
  438.     terminal.
  439.     
  440.     The VT102 mode currently lacks 132 column mode.
  441.     
  442.     When a Niftyterm window is reduced then enlarged, information will be
  443.     clipped and lost off the edge of the window.
  444.     
  445. Authors
  446.     
  447.     Todd Williamson can be reached by electronic mail at tw0i@andrew.cmu.edu
  448.     (internet).  Please direct all correspondence and suggestions about the
  449.     Amiga version of niftyterm to him. 
  450.     
  451.     All correspondence about other versions of niftyterm should be directed to
  452.     cn0h@andrew.cmu.edu (internet).
  453.